<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>
    <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
</head>

<body>
    <div id="app">
        <p>原始字符串: <input type="text" v-model="message" /></p>
        <p>原始字符串: {{ message }}</p>
        <p>计算后反转字符串（computed）: {{ reversedMessage }}</p>
        <p>计算后反转字符串（methods）: {{ reversedMessage2() }}</p>
    </div>

    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                message: 'Runoob!'
            },
            computed: {
                // 计算属性的 getter
                reversedMessage: function () {
                    // `this` 指向 vm 实例
                    return this.message.split('').reverse().join('')
                }
            },
            //我们可以使用 methods 来替代 computed，效果上两个都是一样的，
            //但是 computed 是基于它的依赖缓存，只有相关依赖发生改变时才会重新取值。
            //而使用 methods ，在重新渲染的时候，函数总会重新调用执行。 
            methods: {
                reversedMessage2: function () {
                    return this.message.split('').reverse().join('')
                }
            }
        })
    </script>
</body>

</html>